草庐IT

JavaBeans 替代品?

全部标签

c++ - Visual Studio 2013 中的替代标记(不,和等...)

“not”、“and”等是C++中的关键字(C中的宏)。有没有办法在VisualStudio2013中“启用”它们?我可以将单词用作包含iso646.h的宏。但是VS似乎无法将它们识别为关键字。 最佳答案 使用/Za似乎可以在不包含iso646.h的情况下启用它们,seeitlive,以下程序在不使用/Za的情况下产生错误,但在其他情况下工作正常:intmain(){intx=1,y=0;if(xandy){//...}return0;}如ta.speot.is所示/Za禁用扩展,以下documentation表示您必须包含ios6

c++ - 在 C++ 中是否存在与 qDebug 类似的 cout 替代品?

这个问题在这里已经有了答案:C++coutautoseparator(7个答案)关闭4年前。我喜欢使用Qt中的qDebug在C++中将一些变量写入控制台输出是多么容易:inta=b=c=d=e=f=g=1;qDebug()结果:1111111相比之下,使用std::cout需要我手动添加间距和换行符才能获得相同的结果:std::cout虽然我经常使用Qt,但有时在我工作的项目中添加Qt框架只是为了访问qDebug会过大。虽然编写一个行为类似于qDebug的新类并不难,但我想知道是否有任何既定的std::cout替代品具有与类似的行为qDebug已经存在?编辑:理想情况下,我正在寻找的是

c++ - C 是否有任何 setfill() 替代方案?

在C++中:intmain(){cout输出:#########5C是否有任何setfill()替代方案?或者如何在不手动创建字符串的情况下在C中执行此操作? 最佳答案 intx=5;printf("%010d",x);将输出:0000000005现在,如果您真的想要“#”而不是“0”,则必须在字符串中手动替换它们。也许:charbuf[11],*sp=buf;snprintf(buf,11,"%10d",x);while((sp=strchr(sp,''))!='\0'){*sp='#';}puts(buf);

c++ - 函数指针 : is the simple canonical use bad from a performance point of view? 如果是的话,c++11-ish 的替代方案是什么?

我在我的c++代码中经常使用函数指针,总是以符合这个简单规范示例的方式使用(例如,函数具有相同的I/O,但所需的操作只是在运行时已知):#includeusingnamespacestd;intadd(intfirst,intsecond){returnfirst+second;}intsubtract(intfirst,intsecond){returnfirst-second;}intoperation(intfirst,intsecond,int(*functocall)(int,int)){return(*functocall)(first,second);}intmain()

c++ - GetShortPathName 函数有哪些替代方法?

我正在寻找一个函数,它可以为给定的“长”路径返回“短”(8.3表示法)路径。然而,GetShortPathName函数(看起来非常适合)对我不起作用,因为它要求具有给定长路径的文件已经存在。对于给定的长路径,我还有哪些其他选项可以计算8.3路径? 最佳答案 如果文件不存在,则它没有8.3名称。8.3名称是在创建文件时创建的。如果需要,您当然可以在目录本身上使用GetShortPathName获取其所在目录的8.3路径名。不管怎样,现在是2010年了。任何东西都使用8.3名称真的很倒退。

c++ - c++11 中的 typeid(T).name() 替代方案?

在c++11中是否有一种标准的方法来使用一些模板黑魔法或动态地使用一些标准库函数来获取类的名称? 最佳答案 不,但你可以做一个:templatestructmeta{staticconststd::string&get_name(){returnT::class_name;}};然后将静态成员class_name添加到类中:classMyClass{public:staticconststd::stringclass_name("MyClass");};或专门化元:templatestructmeta{staticconststd:

c++ - 尽管违反了一个定义规则,但是编译器/链接器如何选择替代的内联构造函数?

关于Whatdetermineswhichclassdefinitionisincludedforidentically-namedclassesintwosourcefiles?,其中有意,明显地违反了OneDefinitionRule,我仍然感到困惑,即使编译器/链接器可以选择一个定义而不是另一个定义也是如此。(基于答案/评论的附录:我正在寻找一个示例,说明给定的代码故意违反标准,因此该代码导致未定义的行为,因此编译器/链接器如何产生以下所示的结果。)代码示例是://file1.cpp:#include#include"file2.h"structA{A():a(1){}inta;

c++ - 已定义参数的 GLEW 的 OpenGL 替代品或其解决方案

所以我发布了aquestionsimilartothisinstackoverflow但解决方案似乎可以通过更简单的解决方案来解决。基本上,我使用GLEW加载我的OpenGL头文件等,没有任何麻烦,但由于我使用VIM和Clang_Complete来完成参数,我坚持只完成名称而没有实际显示的参数。因为显然这些函数被定义为#defineFOOsomefunction未定义为#defineFOO(arg1,arg2,arg3)somefunction(arg1,arg2,arg3)我的解决方案是在我的~/.vimrc文件中添加一个选项,并且必须完全删除GLEW并将其替换为#defineGL_

c++ - MS strncpy_s 的替代品

strncpy_s或_itoa_s等Microsoft安全增强功能有哪些替代方案?虽然在MS环境中开发,但目标是编写可以轻松移植到其他平台的代码。 最佳答案 如果你真的想用C编程:使用普通的旧标准strncpy。如果您使用C++编程:使用普通的旧标准字符串类std::string。(提示:您可能想要后者。C字符串只是等待发生的错误,即使您使用“安全”*_s函数也是如此。C++添加字符串类是有原因的) 关于c++-MSstrncpy_s的替代品,我们在StackOverflow上找到一个类

c++ - 为什么标准 R 中值函数比简单的 C++ 替代函数慢得多?

我在C++中实现了以下中位数,并通过Rcpp在R中使用它://[[Rcpp::export]]doublemedian2(std::vectorx){doublemedian;size_tsize=x.size();sort(x.begin(),x.end());if(size%2==0){median=(x[size/2-1]+x[size/2])/2.0;}else{median=x[size/2];}returnmedian;}如果我随后将性能与标准内置R中值函数进行比较,我将通过microbenchmark获得以下结果>x=rnorm(100)>microbenchmark(m